
//格式化时间
Date.prototype.pattern = function (fmt) {
    var o = {
        "M+": this.getMonth() + 1, //月份        
        "d+": this.getDate(), //日        
        "h+": this.getHours() % 12 == 0 ? 12 : this.getHours() % 12, //小时        
        "H+": this.getHours(), //小时        
        "m+": this.getMinutes(), //分        
        "s+": this.getSeconds(), //秒        
        "q+": Math.floor((this.getMonth() + 3) / 3), //季度        
        "S": this.getMilliseconds() //毫秒        
    };
    var week = {
        "0": "\u65e5",
        "1": "\u4e00",
        "2": "\u4e8c",
        "3": "\u4e09",
        "4": "\u56db",
        "5": "\u4e94",
        "6": "\u516d"
    };
    if (/(y+)/.test(fmt)) {
        fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    }
    if (/(E+)/.test(fmt)) {
        fmt = fmt.replace(RegExp.$1, ((RegExp.$1.length > 1) ? (RegExp.$1.length > 2 ? "\u661f\u671f" : "\u5468") : "") + week[this.getDay() + ""]);
    }
    for (var k in o) {
        if (new RegExp("(" + k + ")").test(fmt)) {
            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
        }
    }
    return fmt;
}

if (typeof (dark) == "undefined")
    window.dark = {};
$.extend(window.dark, {
    deserialize: function (string) {
        if (typeof (string) == "undefined") return "";
        var ss = string.split("&");
        var obj = {};
        for (var i = 0; i < ss.length; i++) {
            var kv = ss[i].split("=");
            obj[kv[0]] = kv[1];
        }
        return obj;
    },
    //判断指定值是否存在于数组里面
    //@ary 需要检查的数组
    //@value  需要检查的值
    //return true/false
    isExistInArray: function (ary, value) {
        var result = false;
        $.each(ary, function (i, e) {
            if (e == value) {
                result = true;
                return false;
            }
        });
        return result;
    },
    //获取指定字符串参数
    getQueryString: function (url, name) {
        var reg = new RegExp("(^|\\?|&)" + name + "=([^&]*)(\\s|&|$)", "i");
        if (reg.test(url))
            return unescape(RegExp.$2.replace(/\+/g, " "));
        return "";
    },
    //格式化数字
    formatNum: function (num, n) {
        return Math.round(num * Math.pow(10, n)) / Math.pow(10, n);
    },
    //转换json的时间
    converDate: function (v) {
        var rx = /\/Date\((-?[0-9]+)(\+[0-9]+)?\)\//g;
        if (rx.test(v)) {
            var milli = Number(v.replace(rx, '$1'));
            if (!isNaN(milli))
                v = new Date(Number(v.replace(rx, '$1')));
            else
                throw new Error("Date format not recognised.");
        }
        return new Date(v).pattern("yyyy-MM-dd hh:mm:ss");
    },
    //获取文件名
    getFileName: function (path) {
        var url = path;
        var tmp = new Array(); //临时变量，保存分割字符串
        tmp = url.split("/"); //按照"/"分割
        var pp = tmp[tmp.length - 1]; //获取最后一部分，即文件名和参数
        tmp = pp.split("?"); //把参数和文件名分割开
        return tmp[0];
    },
    removeHTML: function (strText) {
        var regEx = /<[^>]*>/g;
        return strText.replace(regEx, "");
    },
    dialog_easyUI: {
        openload: function () {
            $('#loading').show().window({
                title: '',
                width: 150,
                modal: true,
                shadow: true,
                closed: false,
                height: 40
            }).window('open');
        },
        closeload: function () {
            $('#loading').window("close");
        }
    },
    //判断是否是数字
    isdigit: function (s) {
        var r, re;
        re = /\d*/i; //\d表示数字,*表示匹配多个数字
        r = s.match(re);
        return (r == s) ? 1 : 0;
    },
    //人民币转大写
    convertCurrency: function (currencyDigits) {
        // Constants:
        var MAXIMUM_NUMBER = 99999999999.99;
        // Predefine the radix characters and currency symbols for output:
        var CN_ZERO = "零";
        var CN_ONE = "壹";
        var CN_TWO = "贰";
        var CN_THREE = "叁";
        var CN_FOUR = "肆";
        var CN_FIVE = "伍";
        var CN_SIX = "陆";
        var CN_SEVEN = "柒";
        var CN_EIGHT = "捌";
        var CN_NINE = "玖";
        var CN_TEN = "拾";
        var CN_HUNDRED = "佰";
        var CN_THOUSAND = "仟";
        var CN_TEN_THOUSAND = "万";
        var CN_HUNDRED_MILLION = "亿";
        var CN_SYMBOL = "￥ ";
        var CN_DOLLAR = "元";
        var CN_TEN_CENT = "角";
        var CN_CENT = "分";
        var CN_INTEGER = "整";

        // Variables:
        var integral; // Represent integral part of digit number.
        var decimal; // Represent decimal part of digit number.
        var outputCharacters; // The output result.
        var parts;
        var digits, radices, bigRadices, decimals;
        var zeroCount;
        var i, p, d;
        var quotient, modulus;

        // Validate input string:
        currencyDigits = currencyDigits.toString();
        if (currencyDigits == "") {
            alert("Empty input!");
            return "";
        }
        if (currencyDigits.match(/[^,.\d]/) != null) {
            alert("Invalid characters in the input string!");
            return "";
        }
        if ((currencyDigits).match(/^((\d{1,3}(,\d{3})*(.((\d{3},)*\d{1,3}))?)|(\d+(.\d+)?))$/) == null) {
            alert("Illegal format of digit number!");
            return "";
        }

        // Normalize the format of input digits:
        currencyDigits = currencyDigits.replace(/,/g, ""); // Remove comma delimiters.
        currencyDigits = currencyDigits.replace(/^0+/, ""); // Trim zeros at the beginning.
        // Assert the number is not greater than the maximum number.
        if (Number(currencyDigits) > MAXIMUM_NUMBER) {
            alert("Too large a number to convert!");
            return "";
        }

        // Process the coversion from currency digits to characters:
        // Separate integral and decimal parts before processing coversion:
        parts = currencyDigits.split(".");
        if (parts.length > 1) {
            integral = parts[0];
            decimal = parts[1];
            // Cut down redundant decimal digits that are after the second.
            decimal = decimal.substr(0, 2);
        }
        else {
            integral = parts[0];
            decimal = "";
        }
        // Prepare the characters corresponding to the digits:
        digits = new Array(CN_ZERO, CN_ONE, CN_TWO, CN_THREE, CN_FOUR, CN_FIVE, CN_SIX, CN_SEVEN, CN_EIGHT, CN_NINE);
        radices = new Array("", CN_TEN, CN_HUNDRED, CN_THOUSAND);
        bigRadices = new Array("", CN_TEN_THOUSAND, CN_HUNDRED_MILLION);
        decimals = new Array(CN_TEN_CENT, CN_CENT);
        // Start processing:
        outputCharacters = "";
        // Process integral part if it is larger than 0:
        if (Number(integral) > 0) {
            zeroCount = 0;
            for (i = 0; i < integral.length; i++) {
                p = integral.length - i - 1;
                d = integral.substr(i, 1);
                quotient = p / 4;
                modulus = p % 4;
                if (d == "0") {
                    zeroCount++;
                }
                else {
                    if (zeroCount > 0) {
                        outputCharacters += digits[0];
                    }
                    zeroCount = 0;
                    outputCharacters += digits[Number(d)] + radices[modulus];
                }
                if (modulus == 0 && zeroCount < 4) {
                    outputCharacters += bigRadices[quotient];
                }
            }
            outputCharacters += CN_DOLLAR;
        }
        // Process decimal part if there is:
        if (decimal != "") {
            for (i = 0; i < decimal.length; i++) {
                d = decimal.substr(i, 1);
                if (d != "0") {
                    outputCharacters += digits[Number(d)] + decimals[i];
                }
            }
        }
        // Confirm and return the final output string:
        if (outputCharacters == "") {
            outputCharacters = CN_ZERO + CN_DOLLAR;
        }
        if (decimal == "") {
            outputCharacters += CN_INTEGER;
        }
        outputCharacters = CN_SYMBOL + outputCharacters;
        return outputCharacters;
    },
    dialog: {
        loadingDialogID: null,
        loading: function (content) {
            dark.dialog.loadingDialogID = $.dialog.tips(content, 700, 'loading.gif');
        },
        closeLoading: function () {
            dark.dialog.loadingDialogID.close();
        },
        success: function (content) {
            return $.dialog({
                icon: 'success.gif',
                content: content,
                title: "CRM"
            });
        },
        error: function (content) {
            return $.dialog({
                icon: 'error.gif',
                content: content,
                title: "CRM"
            });
        },
        confrim: function (content, callback) {
            $.dialog.confirm(content, function () {
                callback();
            }, function () {

            });
        },
        successAlter: function (content, callback) {
            var hasClose = false;
            $.dialog({
                icon: "success.gif",
                content: content,
                title: "CRM",
                ok: function () {
                    callback();
                    hasClose = true;
                },
                close: function () {
                    if (hasClose == false) {
                        callback();
                    }
                }
            });
        }
    }
});
